package dominio;

import gestionDeFechas.*;

public class Asiento {
	
	private String codigoDeVuelo;
	private String codigoDeAsiento;
	private String origen;
	private String destino;
	private String fechaDeSalida;
	private String horaDeSalida;
	private String fechaDeLlegada;
	private String horaDeLlegada;
	private String ubicacion;
	private String clase;
	private String precio;
	private boolean reservado;
	private String dniDelQueLoReservo;
	private Aerolinea aerolinea;
	
	// Getters y setters
	
	public String getCodigoDeVuelo() {
		return codigoDeVuelo;
	}
	public void setCodigoDeVuelo(String codigoDeVuelo) {
		this.codigoDeVuelo = codigoDeVuelo;
	}
	public String getCodigoDeAsiento() {
		return codigoDeAsiento;
	}
	public void setCodigoDeAsiento(String codigoDeAsiento) {
		this.codigoDeAsiento = codigoDeAsiento;
	}
	public String getOrigen() {
		return origen;
	}
	public void setOrigen(String origen) {
		this.origen = origen;
	}
	public String getDestino() {
		return destino;
	}
	public void setDestino(String destino) {
		this.destino = destino;
	}
	public String getFechaDeSalida() {
		return fechaDeSalida;
	}
	public void setFechaDeSalida(String fechaDeSalida) {
		this.fechaDeSalida = fechaDeSalida;
	}
	public String getHoraDeSalida() {
		return horaDeSalida;
	}
	public void setHoraDeSalida(String horaDeSalida) {
		this.horaDeSalida = horaDeSalida;
	}
	public String getFechaDeLlegada() {
		return fechaDeLlegada;
	}
	public void setFechaDeLlegada(String fechaDeLlegada) {
		this.fechaDeLlegada = fechaDeLlegada;
	}
	public String getHoraDeLlegada() {
		return horaDeLlegada;
	}
	public void setHoraDeLlegada(String horaDeLlegada) {
		this.horaDeLlegada = horaDeLlegada;
	}
	public String getUbicacion() {
		return ubicacion;
	}
	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}
	public String getClase() {
		return clase;
	}
	public void setClase(String clase) {
		this.clase = clase;
	}
	public String getPrecio() {
		return precio;
	}
	public void setPrecio(String precio) {
		this.precio = precio;
	}
	public boolean estasReservado() {
		return reservado;
	}
	public void setReservado(boolean reservado) {
		this.reservado = reservado;
	}
	public String getDNIDelQueLoReservo() {
		return dniDelQueLoReservo;
	}
	public void setDNIDelQueLoReservo(String dni) {
		this.dniDelQueLoReservo=dni;
	}
	
	public void setAerolinea(Aerolinea aerolinea) {
		this.aerolinea = aerolinea;
	}
	public Aerolinea getAerolinea() {
		return aerolinea;
	}
	public boolean saleDespuesQue(Asiento asientoQueLlegaAntes) 
	{
		long tiempoSalidaSegundoAsiento = this.getTiempoEnMinutos(this.getFechaDeSalida(), this.getHoraDeSalida());
		long tiempoLlegadaPrimerAsiento = this.getTiempoEnMinutos(asientoQueLlegaAntes.getFechaDeLlegada(),
													     asientoQueLlegaAntes.getHoraDeLlegada());
		
		return tiempoSalidaSegundoAsiento > tiempoLlegadaPrimerAsiento;
	}
	
	// Este metodo quiza deber�a estar en otra clase porque sirve en el metodo buscarAsientosQueTengan pero no me
	//fije bien en donde
	public long getTiempoEnMinutos(String fecha , String horaString)
	{
		Parser flexible = new ParseadorFlexible();
		Fecha fechaFormateada = new Fecha(flexible, fecha);
		String[] horaArray = horaString.split(":");
		long horas = Long.parseLong(horaArray[0]);
		long minutos = Long.parseLong(horaArray[1]);
		
		long tiempoEnMinutos = (fechaFormateada.getTime() / 60000)  + (horas * 60) + minutos;
		return tiempoEnMinutos;
	}
	
}
